Πώς να ασφαλίσετε ένα Flask REST API με το JSON Web Token;

Ας μάθουμε πώς να προστατεύσουμε ένα REST API με διακριτικά ιστού JSON για να αποτρέψουμε την κατάχρηση χρηστών και εφαρμογών τρίτων.


Θα δημιουργήσουμε μια υπηρεσία βάσης δεδομένων χρησιμοποιώντας SQLite και επιτρέψτε στους χρήστες να έχουν πρόσβαση σε αυτό μέσω ενός REST API χρησιμοποιώντας μεθόδους HTTP όπως POST και PUT.

Επιπλέον, θα μάθουμε γιατί τα διακριτικά ιστού JSON είναι ένας κατάλληλος τρόπος για την προστασία του API ανάπαυσης αντί για την πέψη και τον βασικό έλεγχο ταυτότητας. Πριν προχωρήσουμε, ας κατανοήσουμε τον όρο Διακριτικά ιστού JSON, REST API και Flask framework.

Διακριτικά Ιστού JSON

Διακριτικό ιστού JSON, επίσης γνωστό ως JWT, είναι ο ασφαλής τρόπος μεταφοράς τυχαίων μαρκών μεταξύ δύο μερών ή οντοτήτων. Το JSON αποτελείται συνήθως από τρία μέρη ως εξής.

  • Φορτίο επί πληρωμή
  • Επί κεφαλής
  • Υπογραφή

Η JSON χρησιμοποιεί δύο τύπους μορφών δομής κατά τη μεταφορά δεδομένων ή πληροφοριών μεταξύ δύο μερών.

  • Σειριακό
  • Αποστειρωμένο

Η σειριακή μορφή χρησιμοποιείται κατά τη μεταφορά δεδομένων στο δίκτυο μέσω κάθε αιτήματος και απόκρισης, ενώ η αποεπιλεγμένη φόρμα χρησιμοποιείται κατά την ανάγνωση και τη συγγραφή δεδομένων στο διακριτικό ιστού.

Στην σειριακή μορφή, υπάρχουν τρία στοιχεία.

  • Επί κεφαλής
  • Φορτίο επί πληρωμή
  • Υπογραφή

Το στοιχείο κεφαλίδας ορίζει τις κρυπτογραφικές πληροφορίες σχετικά με τα διακριτικά. Για παράδειγμα:

  • Είναι υπογεγραμμένο ή μη υπογεγραμμένο JWT?
  • Ορίστε τεχνικές αλγορίθμου

Η αποστειρωμένη μορφή, σε αντίθεση με τη σειριακή μορφή, περιέχει δύο συστατικά.

  • Φορτίο επί πληρωμή
  • Επί κεφαλής

API REST

Το API (διεπαφή προγραμματισμού εφαρμογών) επιτρέπει την επικοινωνία μεταξύ δύο εφαρμογών για ανάκτηση ή υποβολή των δεδομένων. Υπάρχουν δύο δημοφιλείς τύποι API – API ιστού και συστήματος.

Σε αυτό το άρθρο, θα εξετάσουμε μόνο το API ιστού. Υπάρχουν δύο τύποι API Ιστού.

  • Αίτημα – API απόκρισης: Υπόλοιπο, GraphQL, κλήση απομακρυσμένης διαδικασίας (RPC)
  • API βάσει συμβάντων: WebHooks, Web Sockets, HTTP Streaming

Το REST API εμπίπτει στην κατηγορία αιτήματος-απόκρισης. Χρησιμοποιεί μεθόδους HTTP όπως GET, POST και PUT για την εκτέλεση λειτουργιών API.

Ένα κλασικό παράδειγμα είναι όταν ένας χρήστης στέλνει μια μέθοδο GET στην υπηρεσία ιστού για να ζητήσει ή να ανακτήσει έναν συγκεκριμένο πόρο ή μια συλλογή πόρων. Στη συνέχεια, ο διακομιστής στέλνει πίσω τον συγκεκριμένο πόρο ή τη συλλογή πόρων στον χρήστη που τον ζήτησε.

Πλαίσιο φιάλης

Το Flask είναι ένα πλαίσιο βασισμένο στο python. Είναι ένα μικρο-πλαίσιο που χρησιμοποιείται από τους προγραμματιστές της python για να δημιουργήσει το υπόλοιπο API. Ονομάζεται μικροπλαίσιο επειδή επιτρέπει στους προγραμματιστές, για παράδειγμα, να προσθέσουν προσαρμοσμένο έλεγχο ταυτότητας και οποιοδήποτε άλλο σύστημα backend βάσει προτιμήσεων.

Ας ξεκινήσουμε με την εφαρμογή. Η ρύθμιση του συστήματός μου έχει ως εξής.

  • Ubuntu ως λειτουργικό σύστημα
  • Python 2.7+
  • Ταχυδρόμος

Ρυθμίστε ένα εικονικό περιβάλλον χρησιμοποιώντας το virtualenv

Πρέπει να δημιουργήσουμε ένα εικονικό περιβάλλον για να διασφαλίσουμε ότι ορισμένα πακέτα δεν θα έρχονται σε διένεξη με τα πακέτα συστήματος. Ας χρησιμοποιήσουμε το virtualenv για να δημιουργήσουμε ένα νέο εικονικό περιβάλλον.

Υποθέτοντας ότι έχετε την εντολή pip διαθέσιμη στο σύστημά σας, εκτελέστε την ακόλουθη εντολή μέσω pip για εγκατάσταση.

εγκατάσταση pip virtualenv

Εάν δεν έχετε πρόσβαση στο μηχάνημά σας, ακολουθήστε αυτό τεκμηρίωση για να εγκαταστήσετε pip στο σύστημά σας.

Στη συνέχεια, ας δημιουργήσουμε έναν κατάλογο για να αποθηκεύσουμε ή να κρατήσουμε το εικονικό μας περιβάλλον. Χρησιμοποιήστε την εντολή mkdir που φαίνεται παρακάτω για να δημιουργήσετε έναν κατάλογο

mkdir φιάλη έργου

Μεταβείτε στον κατάλογο του έργου με την ακόλουθη εντολή

cd φιάλη έργου

Μέσα στον κατάλογο flaskproject, χρησιμοποιήστε το εργαλείο virtualenv για να δημιουργήσετε ένα εικονικό περιβάλλον όπως φαίνεται παρακάτω:

virtualenv flaskapi

Αφού χρησιμοποιήσετε το εργαλείο virtualenv για να δημιουργήσετε το εικονικό περιβάλλον, εκτελέστε την εντολή cd για να μεταβείτε στον κατάλογο flaskapi ως εικονικό περιβάλλον και ενεργοποιήστε το χρησιμοποιώντας την παρακάτω εντολή.

κάδος πηγής / ενεργοποίηση

Εκτελέστε όλες τις εργασίες που σχετίζονται με αυτό το έργο στο εικονικό περιβάλλον.

Εγκαταστήστε πακέτα χρησιμοποιώντας pip

Τώρα ήρθε η ώρα να εγκαταστήσετε πακέτα όπως το πλαίσιο της φιάλης και το PyJWT που θα χρησιμοποιήσουμε για την κατασκευή του υπόλοιπου API και άλλων απαραίτητων πακέτων για το έργο API μας.

Δημιουργήστε ένα αρχείο requirements.txt με τα ακόλουθα πακέτα.

Φλάσκα
ημερομηνία ώρα
uuid
Flask-SQL Αλχημεία
PyJWT

Εγκαταστήστε τα με pip.

εγκατάσταση pip -r requirements.txt

Δημιουργία βάσης δεδομένων

Ας εγκαταστήσουμε το SQLite.

apt-get install sqlite3

Δημιουργήστε μια βάση δεδομένων που ονομάζεται βιβλιοθήκη. Μέσα σε αυτήν τη βάση δεδομένων, θα δημιουργήσουμε δύο πίνακες, δηλαδή τον πίνακα Χρήστες και Συγγραφείς.

Ο πίνακας χρηστών θα περιέχει εγγεγραμμένους χρήστες. Μόνο οι εγγεγραμμένοι χρήστες μπορούν να έχουν πρόσβαση στον πίνακα Συγγραφείς.

Ο πίνακας συγγραφέων θα αποθηκεύει πληροφορίες ή λεπτομέρειες συγγραφέων, όπως το όνομα του συγγραφέα, τη χώρα γέννησης και ούτω καθεξής που υποβάλλονται από τους εγγεγραμμένους χρήστες.

Δημιουργήστε τη βάση δεδομένων χρησιμοποιώντας την ακόλουθη εντολή:

sqlite3 βιβλιοθήκη.db

Μπορείτε να ελέγξετε εάν έχετε δημιουργήσει με επιτυχία τη βάση δεδομένων χρησιμοποιώντας την παρακάτω εντολή:

.βάσεις δεδομένων

Ανοίξτε ένα νέο τερματικό και εκτελέστε τα ακόλουθα στο εικονικό περιβάλλον που δημιουργήσαμε νωρίτερα.

αγγίξτε app.py

Επικολλήστε τον ακόλουθο κώδικα μέσα στο αρχείο με το όνομα app.py

από φιάλη εισαγωγής Φιάλη, αίτημα, jsonify, make_response
από το flask_sqlalchemy import SQLAlchemy
από το werkzeug.security import create_password_hash, check_password_hash
εισαγωγή uuid
εισαγωγή jwt
εισαγωγή ώρας ώρας
από functools εισαγωγικά περιτυλίγματα

Η πρώτη γραμμή στον παραπάνω κώδικα εισάγει πακέτα όπως το request και το jsonify. Θα χρησιμοποιήσουμε το αίτημα για να παρακολουθούμε τα δεδομένα σε επίπεδο αιτήματος κατά τη διάρκεια ενός αιτήματος και θα χρησιμοποιήσουμε το jsonify για την παραγωγή απαντήσεων σε ένα JSON μορφή.

Στην επόμενη γραμμή, εισαγάγαμε το SQLAlchemy από το flask_sqlalchemy προκειμένου να ενσωματώσουμε τις δυνατότητες του SQLAlchemy στη φιάλη.

Από το werkzeug.security, εισαγάγαμε create_password_hash για να δημιουργήσουμε κατακερματισμό κωδικού πρόσβασης για τους χρήστες και check_password_hash για να ελέγξουμε τον κωδικό πρόσβασης του χρήστη κατά τη σύγκριση του κωδικού πρόσβασης που υποβάλλουν οι χρήστες με τους κωδικούς πρόσβασης των χρηστών που είναι αποθηκευμένοι στη βάση δεδομένων.

Τέλος, εισαγάγαμε το uuid, επίσης γνωστό ως καθολικά μοναδικά αναγνωριστικά για τη δημιουργία τυχαίων αριθμών ταυτότητας για τους χρήστες.

Ωστόσο, μέσα στο αρχείο app.py, εφαρμόστε τις ρυθμίσεις διαμόρφωσης για το API της βιβλιοθήκης χρησιμοποιώντας τον παρακάτω κώδικα μέσα στο αρχείο app.py.

Τοποθετήστε τον ακόλουθο κωδικό κάτω από τη δήλωση εισαγωγής.

app = Φιάλη (__ όνομα__)

app.config [‘SECRET_KEY’] = ‘Th1s1ss3cr3t’
app.config [‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite: /////home/michael/geekdemos/geekapp/library.db’
app.config [‘SQLALCHEMY_TRACK_MODIFICATIONS’] = True

db = SQLAlchemy (εφαρμογή)

Τώρα δημιουργήστε δύο μοντέλα για τον πίνακα Χρήστες και Συγγραφείς όπως φαίνεται παρακάτω. Αντιγράψτε και επικολλήστε τον κώδικα μέσα στο αρχείο app.py.

Τοποθετήστε τον κωδικό παρακάτω ακριβώς κάτω από αυτήν τη ρύθμιση βάσης δεδομένων db = SQLAlchemy (app)

Χρήστες τάξης (db.Model):
id = db. Στήλη (db.Integer, primary_key = True)
public_id = db. Στήλη (db. Integer)
όνομα = db. Στήλη (db. String (50))
κωδικός πρόσβασης = db. Στήλη (db. String (50))
admin = db. Στήλη (db.Boolean)
Συγγραφείς τάξης (db.Model):
id = db. Στήλη (db.Integer, primary_key = True)
όνομα = db. Στήλη (db.String (50), μοναδικό = True, nullable = False))
βιβλίο = db. Στήλη (db.String (20), μοναδικό = True, nullable = False))
χώρα = db. Στήλη (db. String (50), nullable = False))
booker_prize = db. Στήλη (db.Boolean)

Δημιουργία πινάκων χρηστών και συγγραφέων

Στο τερματικό, πληκτρολογήστε τον ακόλουθο κώδικα μέσα στο εικονικό περιβάλλον για να δημιουργήσετε ή να δημιουργήσετε πίνακες τόσο για τους πίνακες χρηστών όσο και για τους συγγραφείς, όπως φαίνεται παρακάτω

από την εφαρμογή εισαγωγής db
db.create_all ()

Στη συνέχεια, ανοίξτε το αρχείο app.py μέσα στο εικονικό περιβάλλον και δημιουργήστε μια άλλη λειτουργία.

Αυτή η συνάρτηση θα δημιουργήσει διακριτικά για να επιτρέψει μόνο στους εγγεγραμμένους χρήστες να έχουν πρόσβαση και να εκτελούν ένα σύνολο λειτουργιών API έναντι του πίνακα Συγγραφέων.

Τοποθετήστε αυτόν τον κωδικό κάτω από το μοντέλο της βάσης δεδομένων για τον πίνακα Συγγραφείς

def token_required (f):
@ Wraps (στ)
def διακοσμητής (* args, ** kwargs):

token = Κανένα

εάν «x-access-tokens» στο request.headers:
token = request.headers [‘x-access-tokens’]

αν όχι διακριτικό:
return jsonify ({‘message’: ‘λείπει ένα έγκυρο διακριτικό’})

προσπαθήστε:
data = jwt.decode (token, app.config [SECRET_KEY])
current_user = Users.query.filter_by (public_id = data [‘public_id’]). πρώτα ()
εκτός:
return jsonify ({‘message’: ‘το διακριτικό δεν είναι έγκυρο’})

επιστροφή f (current_user, * args, ** kwargs)
επιστροφή διακοσμητής

Δημιουργήστε διαδρομές για τον πίνακα χρηστών

Τώρα ας δημιουργήσουμε μια διαδρομή για να επιτρέψουμε στους χρήστες να εγγραφούν στο Authors API μέσω ονόματος χρήστη και κωδικού πρόσβασης όπως φαίνεται παρακάτω.

Ανοίξτε ξανά το αρχείο app.py μέσα στο εικονικό περιβάλλον και επικολλήστε τον ακόλουθο κώδικα κάτω από τη συνάρτηση token_required (f)

@ app.route (‘/ register’, metod = = ‘GET’, ‘POST’])
def signup_user ():
data = request.get_json ()

hashed_password = create_password_hash (δεδομένα [‘κωδικός πρόσβασης’], μέθοδος = ‘sha256’)

new_user = Χρήστες (public_id = str (uuid.uuid4 ()), name = data [‘name’], password = hashed_password, admin = False)
db.session.add (new_user)
db.session.commit ()

επιστροφή jsonify ({‘message’: ‘καταχωρήθηκε με επιτυχία’})

Μέσα στο εικονικό περιβάλλον, δημιουργήστε μια άλλη διαδρομή στο αρχείο app.py για να επιτρέψετε στους εγγεγραμμένους χρήστες να συνδεθούν.

Όταν ένας χρήστης συνδέεται, δημιουργείται ένα τυχαίο διακριτικό ώστε ο χρήστης να έχει πρόσβαση στο API της βιβλιοθήκης.

Επικολλήστε τον παρακάτω κώδικα κάτω από την προηγούμενη διαδρομή που δημιουργήσαμε.

@ app.route (‘/ login’, metod = = ‘GET’, ‘POST’])
def login_user ():

auth = request.authorization

εάν δεν είναι auth ή όχι auth.username ή όχι auth.password:
return make_response («δεν ήταν δυνατή η επαλήθευση», 401, {«WWW.Authentication»: «Βασικός τομέας: "Απαιτείται σύνδεση"’})

user = Users.query.filter_by (name = auth.username). πρώτα ()

εάν check_password_hash (user.password, auth.password):
token = jwt.encode ({‘public_id’: user.public_id, ‘exp’: datetime.datetime.utcnow () + datetime.timedelta (λεπτά = 30)}, app.config [‘SECRET_KEY’])
επιστροφή jsonify ({‘token’: token.decode (‘UTF-8’)})

return make_response («δεν ήταν δυνατή η επαλήθευση», 401, {«WWW.Authentication»: «Βασικός τομέας: "Απαιτείται σύνδεση"’})

Ωστόσο, στο εικονικό περιβάλλον, δημιουργήστε μια άλλη διαδρομή στο αρχείο app.py για να λάβετε ή να ανακτήσετε όλους τους εγγεγραμμένους χρήστες.

Αυτός ο κωδικός ελέγχει για όλους τους εγγεγραμμένους χρήστες στον πίνακα Χρήστες και επιστρέφει το τελικό αποτέλεσμα σε μορφή JSON.

Επικολλήστε τον παρακάτω κώδικα κάτω από τη διαδρομή σύνδεσης

@ app.route (‘/ users’, Methods = [‘GET’])
def get_all_users ():

users = Users.query.all ()

αποτέλεσμα = []

για χρήστη σε χρήστες:
user_data = {}
user_data [‘public_id’] = user.public_id
user_data [‘name’] = όνομα χρήστη
user_data [‘password’] = user.password
user_data [‘admin’] = user.admin

result.append (user_data)

επιστροφή jsonify ({‘users’: result})

Δημιουργήστε διαδρομές για τον πίνακα συγγραφέων 

Ας δημιουργήσουμε διαδρομές για τον πίνακα Συγγραφέων για να επιτρέψουμε στους χρήστες να ανακτήσουν όλους τους συντάκτες στη βάση δεδομένων, καθώς και να διαγράψουν συντάκτες.

Μόνο οι χρήστες με έγκυρα διακριτικά μπορούν να εκτελέσουν αυτές τις λειτουργίες API.

Μέσα στο αρχείο app.py, δημιουργήστε μια διαδρομή για εγγεγραμμένους χρήστες για να δημιουργήσετε νέους συντάκτες.

Επικολλήστε αυτόν τον κωδικό κάτω από τη διαδρομή που επιτρέπει σε έναν χρήστη να ανακτήσει όλους τους εγγεγραμμένους χρήστες.

@ app.route (‘/ author’, method = [‘POST’, ‘GET’])
@token_required
def create_author (current_user):

data = request.get_json ()

new_authors = Συγγραφείς (name = data [‘name’], country = data [‘country’], book = data [‘book’], booker_prize = True, user_id = current_user.id)
db.session.add (new_authors)
db.session.commit ()

return jsonify ({‘message’: ‘δημιουργήθηκε νέος συντάκτης’})

Στη συνέχεια, δημιουργήστε μια άλλη διαδρομή για να επιτρέψετε σε έναν εγγεγραμμένο χρήστη με έγκυρο διακριτικό να ανακτήσει όλους τους συντάκτες στον πίνακα Συγγραφείς όπως φαίνεται παρακάτω.

Επικολλήστε αυτόν τον κωδικό κάτω από τη διαδρομή που επιτρέπει στον χρήστη να δημιουργήσει έναν νέο συντάκτη.

@ app.route (‘/ author’, method = [‘POST’, ‘GET’])
@token_required
def get_authors (current_user):

author = Authors.query.filter_by (user_id = current_user.id) .all ()

έξοδος = []
για συγγραφέα σε συγγραφείς:

συγγραφέας_δεδομένων = {}
author_data [‘name’] = author.name
author_data [‘book’] = author.book
author_data [‘country’] = author.country
author_data [‘booker_prize’] = author.booker_prize
output.append (author_data)

επιστροφή jsonify ({‘list_of_authors’: έξοδος})

Τέλος, ακόμα μέσα στο αρχείο app.py, δημιουργήστε μια διαδρομή για να διαγράψετε έναν καθορισμένο συντάκτη όπως φαίνεται παρακάτω.

Επικολλήστε αυτόν τον κωδικό κάτω από τη διαδρομή που επιτρέπει σε έναν χρήστη να ανακτήσει μια λίστα συγγραφέων.

@ app.route (‘/ author /’, Methods = [‘DELETE’])
@token_required
def delete_author (current_user, author_id):
author = Author.query.filter_by (id = author_id, user_id = current_user.id). πρώτα ()
αν όχι συγγραφέας:
return jsonify ({‘message’: ‘δεν υπάρχει συντάκτης’})

db.session.delete (συγγραφέας)
db.session.commit ()

return jsonify ({‘message’: ‘Ο συγγραφέας διαγράφηκε’})

αν __name__ == ‘__main__’:
app.run (debug = True)

Στη συνέχεια, αποθηκεύστε και κλείστε το αρχείο app.py μέσα στο εικονικό περιβάλλον.

Δοκιμή του API της βιβλιοθήκης με τον Ταχυδρόμο

Σε αυτήν την ενότητα, θα χρησιμοποιήσουμε ένα εργαλείο ταχυδρόμου για να στείλουμε ένα αίτημα στις υπηρεσίες βάσης δεδομένων. Εάν δεν έχετε ταχυδρόμο στον υπολογιστή σας, μπορείτε να μάθετε πώς να το κατεβάσετε και να το εγκαταστήσετε εδώ.

Εκτός από τον ταχυδρόμο, μπορούμε να χρησιμοποιήσουμε άλλα εργαλεία όπως Μπούκλα για να στείλετε αιτήματα στον διακομιστή.

Ανοίξτε ένα νέο τερματικό και πληκτρολογήστε τα εξής:

ταχυδρόμος

Ο ταχυδρόμος εντολών θα κάνει το πρόγραμμα περιήγησης ιστού να εμφανίζει την παρακάτω σελίδα:

ταχυδρόμος

Μπορείτε να αποφασίσετε να εγγραφείτε και να δημιουργήσετε έναν δωρεάν λογαριασμό, αλλά θα παραλείψουμε και θα έχουμε άμεση πρόσβαση στην εφαρμογή για να δοκιμάσετε το API της βιβλιοθήκης όπως φαίνεται παρακάτω:

Δοκιμάστε το api της βιβλιοθήκης

Σε αυτήν την ενότητα, θα επιτρέψουμε σε έναν χρήστη να εγγραφεί στο API της βιβλιοθήκης παρέχοντας ένα όνομα χρήστη και έναν μοναδικό κωδικό πρόσβασης σε μορφή JSON χρησιμοποιώντας τη μέθοδο POST χρησιμοποιώντας τα παρακάτω βήματα:

  • Κάντε κλικ στην καρτέλα με ετικέτα Σώμα
  • Στη συνέχεια, επιλέξτε το κουμπί raw και επιλέξτε τη μορφή JSON
  • εισαγάγετε ένα όνομα χρήστη και έναν κωδικό πρόσβασης για να εγγραφείτε όπως φαίνεται στο στιγμιότυπο οθόνης
  • Δίπλα στο κουμπί αποστολής, εισαγάγετε την ακόλουθη διεύθυνση URL http://127.0.0.1/register
  • Τέλος, αλλάξτε τη μέθοδο σε POST και πατήστε το κουμπί αποστολής.

ένας χρήστης εγγράφεται για api

Θα εμφανίσει την ακόλουθη έξοδο όπως φαίνεται παρακάτω:

Τώρα έχουμε καταχωρίσει με επιτυχία έναν χρήστη. Ας προχωρήσουμε για να επιτρέψουμε στον χρήστη που μόλις εγγράφηκε να συνδεθεί προκειμένου να δημιουργήσει ένα προσωρινό τυχαίο διακριτικό για πρόσβαση στον πίνακα Συγγραφέων ακολουθώντας τα παρακάτω βήματα:

  •  Κάντε κλικ στην καρτέλα εξουσιοδότησης.
  • Στην ενότητα τύπου, επιλέξτε βασικό έλεγχο ταυτότητας.
  • Στη συνέχεια, συμπληρώστε τη φόρμα ονόματος χρήστη και κωδικού πρόσβασης με το όνομα χρήστη και τον κωδικό πρόσβασης που έχετε εγγραφεί στο παρελθόν.
  • Τέλος, πατήστε το κουμπί αποστολής για να συνδεθείτε και να δημιουργήσετε ένα τυχαίο διακριτικό.

Μόλις ο χρήστης συνδεθεί με επιτυχία, δημιουργείται ένα τυχαίο διακριτικό για τον χρήστη, όπως φαίνεται στο στιγμιότυπο οθόνης.

Θα χρησιμοποιήσουμε το δημιουργημένο τυχαίο διακριτικό για πρόσβαση στον πίνακα Συγγραφείς.

Σε αυτήν την ενότητα, θα προσθέσουμε τις πληροφορίες ενός συγγραφέα στον πίνακα Συγγραφέων μέσω της μεθόδου POST χρησιμοποιώντας τα ακόλουθα βήματα:

  • Κάντε κλικ στην καρτέλα κεφαλίδες
  • Συμπεριλάβετε τις ακόλουθες κεφαλίδες HTTP που εμφανίζονται στο στιγμιότυπο οθόνης

  • Στη συνέχεια, κάντε κλικ στην καρτέλα σώματος και εισαγάγετε τις λεπτομέρειες του νέου συντάκτη
  • Στη συνέχεια, πατήστε το κουμπί αποστολής για να προσθέσετε τα στοιχεία του συγγραφέα στον πίνακα του Συγγραφέα

Μπορείτε επίσης να ανακτήσετε τις πληροφορίες των συγγραφέων στον πίνακα Συγγραφείς μέσω των εξής:

  • Βεβαιωθείτε ότι το διακριτικό που δημιουργήσατε βρίσκεται στην ενότητα κεφαλίδων. αν δεν υπάρχει, πρέπει να το συμπληρώσετε με το διακριτικό σας.
  • Δίπλα στο κουμπί αποστολής, εισαγάγετε αυτήν τη διεύθυνση URL http://127.0.0.1/authors
  • Στη συνέχεια, αλλάξτε τη μέθοδο HTTP σε GET και πατήστε το κουμπί αποστολής για να ανακτήσετε τις λεπτομέρειες των συγγραφέων.

Τέλος, μπορείτε να διαγράψετε τους συντάκτες στον πίνακα Συγγραφείς μέσω της μεθόδου DELETE ακολουθώντας τα παρακάτω βήματα:

  • Βεβαιωθείτε ότι το διακριτικό σας εξακολουθεί να βρίσκεται στην ενότητα κεφαλίδων. Μπορείτε να ελέγξετε την καρτέλα κεφαλίδων για να βεβαιωθείτε ότι υπάρχουν οι απαραίτητες πληροφορίες.
  • Δίπλα στο κουμπί αποστολής, εισαγάγετε αυτήν τη διεύθυνση URL http://127.0.0.1/sam
  • Στη συνέχεια, πατήστε το κουμπί αποστολής για να διαγράψετε τον χρήστη που καθορίσατε.

Μπορείτε να βρείτε τον πλήρη πηγαίο κώδικα στο Github.  Μπορείτε να το κλωνοποιήσετε και να το ελέγξετε στο μηχάνημά σας.

Ετικέτες:

  • Πύθων

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map